package com.jsb.laundry.model.shops;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 店铺订单列表视图
 *
 * @JsonAlias({"od"}) json->java 反序列化
 * @JsonProperty("oid") java->json 序列化
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class ShopOrderVo implements Serializable {

    private static final long serialVersionUID = 701700696615489655L;
    /**
     * 当前token持有者id
     */
    private String uid;
    private int pageNum = 1;
    private int pageSize = 10;
    private String shopFlag;

    private Date startTime;
    private Date endTime;
    // 批量入库传入运单id
    private List<String> transportIds;
    private List<String> subOrderIds;
    private List<String> orderIds;
    //送达时间排序 (0 降序 1升序)
    private String deliveryTimeSort = "0";
    //入库是否检查：0未检查 1已检查
    private String inCheckStatus;
    //出库是否检查：0未检查 1已检查
    private String outCheckStatus;
    private String exceptionCheckStatus;
    //操作人账号
    private String operatorAccount;
    //子订单已全部入店铺 订单id
    private List<String> allInOutShopOrderIdList;
    /**
     * 托管状态 (入库时间)
     * 0：全部
     * 1：托管中  <24
     * 2：即将超时 24~48
     * 3：已超时   >48
     */
    private String tgStatus;
    @ApiModelProperty(value = "名称")
    private String title;

    @ApiModelProperty(value = "品牌")
    private String brand;

    @ApiModelProperty(value = "颜色")
    private String color;

    @ApiModelProperty(value = "瑕疵")
    private String flaw;

    @ApiModelProperty(value = "配饰")
    private String accessories;
    @ApiModelProperty(value = "洗护效果")
    private String afterWashingEffect;
    @ApiModelProperty(value = "店铺入库的图片")
    private String shopInCheckImg;

    @ApiModelProperty(value = "店铺出库的图片")
    private String shopOutCheckImg;
    private String phone;


    private String consumNum;
    private String withdraw;
    private String consumMoney;
    private String consumMoneyBack;
    private String consumType;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date consumTime;
    /**
     * 物流方向 1送 2回
     */
    private String trackingDirection;
    /**
     * (入库管理)1未入库 2已入库 (出库管理)3代取件 4 已出库 (订单管理) 5已完成 6进行中
     * (移除管理) 7待处理 8已处理
     */
    private String shopOrdersStatus;

    /**
     * 配送方式 0:货车配送、1:客户自提
     */
    private String transportMode;

    /**
     * 结算状态 0:待结算 1:已结算
     */
    private String settlementStatus;

    /**
     * 查看 客户管理\骑手管理\小站管理 数据时 对应传 1
     */
    private String shopsViewFlag;
    private String riderViewFlag;
    private String userViewFlag;

//=============================================================================================================================//
    @ApiModelProperty(value = "店铺id")
    private String shopsId;
    @ApiModelProperty(value = "店铺名称")
    private String shopsName;
    @ApiModelProperty(value = "订单编号")
    private String orderId;
    @ApiModelProperty(value = "子订单编号")
    private String subOrderId;

    @ApiModelProperty(value = "运单编号")
    private String transportId;
    private String trackingNumber;

    @ApiModelProperty(value = "实际支付总金额")
    private String paidPrice;
    @ApiModelProperty(value = "衣物单价")
    private String price;

    @ApiModelProperty(value = "衣物数量")
    private String num;
    private String quantity;

    @ApiModelProperty(value = "洗护类型(描述)")
    private String washingType;
    private String businessType;

    @ApiModelProperty(value = "清洗状态")
    private String washingStatus;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "送达时间")
    private Date createdAt;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "入库时间")
    private Date inTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "出库时间")
    private Date outTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;


    private String userId;
    @ApiModelProperty(value = "客户姓名")
    private String userName;
    @ApiModelProperty(value = "客户手机号")
    private String userPhone;
    private String riderId;
    @ApiModelProperty(value = "骑手手机号")
    private String riderPhone;
    @ApiModelProperty(value = "骑手姓名")
    private String riderName;
    private String riderCommission;
    @ApiModelProperty(value = "累积接单次数")
    private String orderTakingTotal;
    @ApiModelProperty(value = "累计返佣金额")
    private String rebateTotal;
    @ApiModelProperty(value = "操作员账号")
    private String opAccount;
    @ApiModelProperty(value = "店铺推荐码")
    private String shopReferenceCode;

}
